ANTD table 虚拟滚动
前言
Antd团队 2016 年就要注意到 antd 长列表项目的性能问题了,当时让靠分页来解决,问题是很多需求是要单屏展示的,团队也很清楚用虚拟滚动可以有效地解决这个问题。
使用虚拟滚动目的是实现万级以上数据的高性能表格。
简单粗暴直接上代码
搜索方法
1 | const inputRef = useRef<Input>(null); |
排序方法
1 | // columns处理函数包含排序sorter |
坑点
最最关键的,官方文档未定义一个方法,导致点击排序或者搜索方法会报scrollTop of undefined
1 | const [connectObject] = useState<any>(() => { |
完整的VirtualTable组件
1 | // 完整的VirtualTable |
1 | .virtualTable { |
使用VirtualTable组件
1 | import ResizeObserver from "rc-resize-observer" |
补充
表格的onchange事件。清空筛选项
1 | const [filteredInfo, setFilteredInfo] = useState<any>(null); |